<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    /* 
    彩蛋1. 代码题:'abaabgfdebbafefgefsrsbabesseeeeaa' 
        请计算每一个字母出现的次数,及出现最多次数的字母
    */
    const str = 'abaabgfdebbafefgefsrsbabesseeeeaa'
    // 得到字符串所有字母组成的数组
    let arr = str.split('')
    arr = [...str]

    console.log(arr)
    // 遍历数组, 统计并保存字母与对应数量的映射关系(key是字母, value是次数) => 用对象保存
    const obj = {}
    arr.forEach(item => {
      obj[item] = (obj[item] ? obj[item] + 1 : 1)
    })
    // 找出属性值最大的属性(属性名是字母, 属性值就最次数)
    let maxLetter
    let maxCount = 0
    Object.keys(obj).forEach(key => {
      if (obj[key]>maxCount) {
        maxCount = obj[key]
        maxLetter = key
      }
    })
    console.log(maxLetter, maxCount)
    /* 
    forEach会遍历每个元素, 不能中断  想中断, 得用 find / some
    */




  </script>

  <script>

    /* 
   彩蛋2. 代码题: 'hello every one'
        让字符串中所有单词的首字母大写
   */
    const str2 = 'hello every  one'  // Hello Every One
    // console.log(str2[0].toUpperCase() + str2.slice(1)) // 将字符串的首字母大写了

    // 将字符串用空格将其分隔数组, 对每个元素的首字母变为大写, 再用空格拼接成字符串
    // const result = str2.split(' ')
    const result = str2.split(/\s+/)  // 能处理多个空格的情况
      .map(item => item[0].toUpperCase() + item.slice(1))
      .join(' ')
    console.log(result)

  </script>
</body>
</html>